package routers

import (
	"beego-restful-server/controllers"
	"github.com/astaxie/beego"
)

func init() {
	/*
		beego.Post :多种请求方式
		beego.Router :默认
		beego.Any:	任意固定路由
		beego.Handler(router, http.Handler) 这个函数是关键,第一个参数表示路由 URI, 
		第二个就是你自己实现的 http.Handler, 注册之后就会把所有 rpc 作为前缀的请求分发到 http.Handler 中进行处理.
	*/
	//固定路由
	beego.Router("/api/:objectId:int", &controllers.MainController{})

	//自定义方法及 RESTful 规则
	beego.Router("/api/add", &controllers.Test{},"post:Add")
    beego.Router("/api/delete", &controllers.Test{},"delete:Delete")	
    beego.Router("/api/all", &controllers.Test{},"*:Add")
    beego.Router("/api/addx", &controllers.Test{},"get,post:Add1")
    beego.Router("/api/addy", &controllers.Test{},"get:Add2;post:Add1")
	// 如果同时存在 * 和对应的 HTTP Method，那么优先执行 HTTP Method 的方法，例如同时注册了如下所示的路由：
	// beego.Router("/simple",&SimpleController{},"*:AllFunc;post:PostFunc")
	// 那么执行 POST 请求的时候，执行 PostFunc 而不执行 AllFunc。

	//自动路由 (类似于java的struts2)
	beego.AutoRouter(&controllers.Auto{})	
	//方法名在内部是保存了用户设置的，例如 Login，url 匹配的时候都会转化为小写，所以，/object/LOGIN 这样的 
	//url 也一样可以路由到用户定义的 Login 方法中。

	
}
